package com.probox.common.entity.domain.wechat.PayAudit.bankaccountinfo;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
 * 结算银行账户
 * 请填写商家提现收款的银行账户信息。
 * @author Kite
 * @date 2021/6/28
 */
@Data
public class BankAccountInfo implements Serializable {

    /**
     * 账户类型 (必填)
     * 1、若主体为企业/党政、机关及事业单位/其他组织，可填写：对公银行账户。
     * 2、若主体为个体户，可选择填写：对公银行账户或经营者个人银行卡。
     * 枚举值：
     *
     * BANK_ACCOUNT_TYPE_CORPORATE：对公银行账户
     * BANK_ACCOUNT_TYPE_PERSONAL：经营者个人银行卡
     */
    private String bank_account_type;

    /**
     * 开户名称 (必填)
     * 1、选择“经营者个人银行卡”时，开户名称必须与“经营者证件姓名”一致。
     * 2、选择“对公银行账户”时，开户名称必须与营业执照/登记证书的“商户名称”一致。
     * 3、该字段需进行加密处理，加密方法详见敏感信息加密说明。(提醒：必须在HTTP头中上送Wechatpay-Serial)
     */
    private String account_name;

    /**
     * 开户银行 (必填)
     * 开户银行，详细参见开户银行对照表。
     */
    @NotBlank(message = "请选择开户行")
    private String account_bank;

    /**
     * 开户银行省市编码 (必填)
     * 至少精确到市，详细参见省市区编号对照表。
     */
    @NotBlank(message = "请选择开户行城市")
    private String bank_address_code;

    /**
     * 开户银行联行号 (二选一）
     * 1、17家直连银行无需填写，如为其他银行，则开户银行全称（含支行）和开户银行联行号二选一。
     * 2、详细参见开户银行全称（含支行）对照表。
     */
    private String bank_branch_id;

    /**
     * 开户银行全称（含支行） (二选一）
     * 1、17家直连银行无需填写，如为其他银行，则开户银行全称（含支行）和 开户银行联行号二选一。
     * 2、需填写银行全称，如"深圳农村商业银行XXX支行"，详细参见开户银行全称（含支行）对照表。
     */
    @NotBlank(message = "请输入支行")
    private String bank_name;

    /**
     * 银行账号 (必填)
     * 1、数字，长度遵循系统支持的卡号长度要求表。
     * 2、该字段需进行加密处理，加密方法详见敏感信息加密说明。(提醒：必须在HTTP头中上送Wechatpay-Serial)
     */
    @NotBlank(message = "请输入银行卡号")
    private String account_number;


}
